Method and apparatus for providing extensible document access to assistive technology providers

ABSTRACT

A method, system, and computer program product for providing an access engine that functions as an intermediary between a specific object and a renderer.

BACKGROUND

1. Technical Field of the Present Invention

The present invention generally relates to computers, and morespecifically, to intermediate software that provides an interfacebetween applications and assistive software that assists an individualwith vision impairment.

2. Description of Related Art

Technological advances have allowed the electronic industry to take amore active and, often times, critical role in assisting individualswith various disabilities. In particular, these advances have enhancedthe number of options in which information can be presented to anindividual.

Personal computers are examples of the type of technology that have beenadapted to assist individuals with vision impairment. In general, visualinformation is displayed on a monitor and data can be added ormanipulated via keystrokes upon an associated keyboard. Screen readersor renderers (e.g. JAWS™ by Freedom Scientific) have enabled visuallyimpaired individuals to hear what is being displayed on the monitor viaa speech synthesizer and/or felt on a refreshable Braille display.

The renderers can support applications such as the Internet Explorerwith special features, such as, links lists, frame lists, forms mode andreading of HTML labels and graphic labels included on web pages. Uponentering an HTML document via an Internet link, the speech synthesizerwill speak the number of frames in a document being read in InternetExplorer and the number of links in the frame currently being displayed.The speech synthesizer will also read graphics labeled by alternate tagsin HTML code.

In order to provide the appropriate assistance, the renderer must haveknowledge concerning each document type that is to be rendered (e.g.navigation, display properties etc.,). Unfortunately, each document typehas its own set of objects and attributes that are described in itsDocument Object Model (DOM) such as HTML, XHTML, PDF, Flash, and Daisy.Some of these DOMs will have proprietary protection schemes to ensurethat the document content is used in accordance with its license (e.g.,password protection scheme). As a result of the definition of DOMsbecoming more document specific, the complexity of attempting tointerface with DOMs has increased. For example, a chart is differentthan a paragraph and a table is different than a graphics image. Someobjects are completely enclosed in their own renderer and appear as ahole (e.g. an embedded object) in the main document.

As the types of complex documents increase, the above noted issues andothers will continue to arise, and the ability of renderers to continueto provide the same functionality as the displayed information isbecoming increasingly difficult. More specifically, the applicationdevelopers must have detailed knowledge of the semantics of eachdocument type and how to access each renderer's proprietary accessmethods (e.g., programming interfaces). Unfortunately, this informationis not readily available, and often times, limited to a specific groupof individuals.

It would, therefore, be a distinct advantage to provide an interfacethat would provide application developers with the ability to interactwith these DOMs without having detailed knowledge of the DOMsthemselves.

SUMMARY OF THE PRESENT INVENTION

In one aspect, the present invention is a method of rendering documentobjects to individuals with vision impairment. The method includes thestep of creating an access engine. The method also includes the step oftransmitting navigation commands to the access engine during thenavigation of a document object. The method further includes receivinginformation related to the document object from the access engine inresponse to the transmitted navigation commands. The method then rendersthe received information.

BRIEF DESCRIPTION OF THE DRAWINGS

The present invention will be better understood and its numerous objectsand advantages will become more apparent to those skilled in the art byreference to the following drawings, in conjunction with theaccompanying specification, in which:

FIG. 1 is a block diagram illustrating a computer system that implementsa preferred embodiment of the present invention;

FIG. 2 is a data diagram illustrating the interactions between a DOM, aRenderer, and an Access Engine according to the teachings of the presentinvention; and

FIG. 3 is a flow chart illustrating the method for using the accessengine of FIG. 2 according to the teachings of the present invention.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT OF THE PRESENTINVENTION

The present invention is a method, system, and computer program productfor assisting individuals with vision impairment. More specifically, thepresent invention provides an access engine that intermediates betweenthe renderer and the specific document (DOM). The access engine providesa convenient and specific location from which the DOM can publish theApplication Specific Interface (API) calls, methods, procedures, and alist of supported events that can be processed by the DOM. Any softwarethat is required to interface with the specific content DOMs can use theaccess engine.

Reference now being made to FIG. 1, a block diagram is shownillustrating a computer system 100 that implements a preferredembodiment of the present invention. Computer System 100 includesvarious components each of which is explained in greater detail below.

Bus 122 represents any type of device capable of providing communicationof information within Computer System 100 (e.g., System bus, PCI bus,cross-bar switch, etc.) Processor 112 can be a general-purpose processor(e.g., the PowerPC™ manufactured by IBM or the Pentium™ manufactured byIntel) that, during normal operation, processes data under the controlof an operating system and application software 110 stored in a dynamicstorage device such as Random Access Memory (RAM) 114 and a staticstorage device such as Read Only Memory (ROM) 116. The operating systempreferably provides a graphical user interface (GUI) to the user.

The present invention, including the alternative preferred embodiments,can be provided as a computer program product, included on amachine-readable medium having stored on it machine executableinstructions used to program computer system 100 to perform a processaccording to the teachings of the present invention.

The term “machine-readable medium” as used in the specification includesany medium that participates in providing instructions to processor 112or other components of computer system 100 for execution. Such a mediumcan take many forms including, but not limited to, non-volatile media,and transmission media. Common forms of non-volatile media include, forexample, a floppy disk, a flexible disk, a hard disk, magnetic tape, orany other magnetic medium, a Compact Disk ROM (CD-ROM), a Digital VideoDisk-ROM (DVD-ROM) or any other optical medium whether static orrewriteable (e.g., CDRW and DVD RW), punch cards or any other physicalmedium with patterns of holes, a programmable ROM (PROM), an erasablePROM (EPROM), electrically EPROM (EEPROM), a flash memory, any othermemory chip or cartridge, or any other medium from which computer system100 can read and which is suitable for storing instructions. In thepreferred embodiment, an example of a non-volatile medium is the HardDrive 102.

Volatile media includes dynamic memory such as RAM 114. Transmissionmedia includes coaxial cables, copper wire or fiber optics, includingthe wires that comprise the bus 122. Transmission media can also takethe form of acoustic or light waves, such as those generated duringradio wave or infrared data communications.

Moreover, the present invention can be downloaded as a computer programproduct where the program instructions can be transferred from a remotecomputer such as server 139 to requesting computer system 100 by way ofdata signals embodied in a carrier wave or other propagation medium vianetwork link 134 (e.g., a modem or network connection) to acommunications interface 132 coupled to bus 122.

Communications interface 132 provides a two-way data communicationscoupling to network link 134 that can be connected, for example, to aLocal Area Network (LAN), Wide Area Network (WAN), or as shown, directlyto an Internet Service Provider (ISP) 137. In particular, network link134 may provide wired and/or wireless network communications to one ormore networks.

ISP 137 in turn provides data communication services through theInternet 138 or other network. Internet 138 may refer to the worldwidecollection of networks and gateways that use a particular protocol, suchas Transmission Control Protocol (TCP) and Internet Protocol (IP), tocommunicate with one another. ISP 137 and Internet 138 both useelectrical, electromagnetic, or optical signals that carry digital oranalog data streams. The signals through the various networks and thesignals on network link 134 and through communication interface 132,which carry the digital or analog data to and from computer system 100,are exemplary forms of carrier waves transporting the information.

In addition, multiple peripheral components can be added to computersystem 100. For example, audio device 128 is attached to bus 122 forcontrolling audio output. A display 124 is also attached to bus 122 forproviding visual, tactile or other graphical representation formats.Display 124 can include both non-transparent surfaces, such as monitors,and transparent surfaces, such as headset sunglasses or vehiclewindshield displays.

A keyboard 126 and cursor control device 130, such as mouse, trackball,or cursor direction keys, are coupled to bus 122 as interfaces for userinputs to computer system 100.

The execution of application software 110 on computer system 100according to a preferred embodiment of the present invention isexplained in greater detail below.

Reference now being made to FIG. 2 a data diagram is shown illustratingthe interactions between an application 202 having a specified formatsuch as DOM, a Renderer 206, and an Access Engine 204 according to theteachings of the present invention. The application 202 can represent anHTML document such as a web page, and the renderer 206 can be, forexample, the JAWS™ renderer by Freedom Scientific.

In the preferred embodiment of the present invention, an access engine204 is created that provides a convenient, consistent and knowledgeableinterface between the renderer 206 and the application 202. The accessengine 204 provides information about the types of objects supported,and information concerning the rendering of each supported object suchas supported navigation modes, displayed information, event handling andthe like.

The renderer 206 and access engine 204 communicate with one anotherusing external configuration information such as data type mappings orconfiguration file settings.

An example of how the Access Engine can be implemented as a classinstantiation is provided below in pseudo code. Public classAccessEngine( ){ Void AccessEngine( ){ }; //return supported readingmodes // character, word, line, sentence, paragraph, page, image, etcpublic List get Modes( ); //get a list of movement increments //previous/current/next, each object type public ListgetMovementIncrements( ); //return pointer to next object in thedirection specified //type = char, word, line, page, start, end, etcpublic ObjectgetObject(Movement direction type); //direction = previous,current or next }

The pseudo code provided above is merely representative of how theaccess engine 204 can be implemented and is not to be considered alimitation on its applicability to other implementations or thefunctionality described herein.

In the preferred embodiment of the present invention, the application202 would have methods for extracting object information and states asnoted below in exemplary pseudo code. { //get text to speak publicString getText( ); //get state to speak public String getState( );//like checked or not checked // get the input/output mode public StringgetMode( ); //etc. }

Reference now being made to FIG. 3, a flow chart is shown illustratingthe method for using the access engine of FIG. 2 according to theteachings of the present invention. The method begins upon theinstantiation of the access engine 204. The instantiation can be theresult of the initiation of a document process and/or an event such aschanging focus or indication that a new user interface object is beingpresented to the end user (Steps 300-302). For multi-document renderers,such as the Home Page Reader™ by IBM, the access engine 204 can beinstantiated upon the loading of a new document.

Upon instantiation and a predetermined event, the renderer 206 queriesthe access engine 204 to determine the navigation modes supported forthe application 202 and provides the renderer with choices that can beuser selectable (e.g. word, sentence, line, paragraph, etc.) (Step 304).

During the navigation of the application 202, the renderer 206 sendsnavigation and possibly other commands (e.g. input) to the access engine204 and receives rendering information for the current focus object, oras the case may be, the next object to receive focus. For example, thenavigation command could be ‘next object’ or ‘next page’. The accessengine 204 and application 202 focus would advance to the next supportedobject (e.g. chart in a drawing application) using a navigation mode. Inaddition, the access engine 204 accesses the application 202 to queryand extract attributes about the next object for presentation such ascontent, descriptive text, state, value, and supported actions (e.g.press enter to activate a link).

Thus, the document provider dynamically enhances the capabilities of therenderers by supplying extended functions to supply the new attributesfor new document object types. This provides the renderer 206 with theability to dynamically adjust to the application 202 content semantics.(Step 306).

The renderer 206 uses the information provided by the access engine 204to provide rendering such as speech output, Braille, font enlargementand the like (Step 308).

It is thus believed that the operation and construction of the presentinvention will be apparent from the foregoing description. While themethod and system shown and described has been characterized as beingpreferred, it will be readily apparent that various changes and/ormodifications could be made without departing from the spirit and scopeof the present invention as defined in the following claims.

1. A method of rendering document objects to individuals with visionimpairment, the method comprising the steps of: creating an accessengine; transmitting navigation commands to the access engine during thenavigation of a document object; receiving information related to thedocument object from the access engine in response to the transmittednavigation commands; and rendering the received information.
 2. Themethod of claim 1 further comprising the step of: querying the accessengine for supported navigation actions of the document object.
 3. Themethod of claim 1 wherein the step of rendering the received informationincludes: providing the received information audibly.
 4. The method ofclaim 1 wherein the step of rendering the received information includes:providing the received information in Braille.
 5. The method of claim 1wherein the step of creating an access engine includes the step of:instantiating the access engine in response to a predetermined event. 6.The method of claim 1 wherein the step of creating an access engineincludes the step of: instantiating the access engine when a new processbegins.
 7. The method of claim 6 wherein the method further comprisesthe step of: querying the access engine for supported navigation modesof the document object.
 8. An apparatus for rendering document objectsto individuals with vision impairment, the apparatus comprising: meansfor creating an access engine; means for transmitting navigationcommands to the access engine during the navigation of a documentobject; means for receiving information related to the document objectfrom the access engine in response to the transmitted navigationcommands; and means for rendering the received information.
 9. Theapparatus of claim 8 further comprising: means for querying the accessengine for supported navigation actions of the document object.
 10. Theapparatus of claim 8 wherein the means for rendering the receivedinformation includes: means for providing the received informationaudibly.
 11. The apparatus of claim 8 wherein the means for renderingthe received information includes: means for providing the receivedinformation in Braille.
 12. The apparatus of claim 8 wherein the meansfor creating an access engine includes: means for instantiating theaccess engine in response to a predetermined event.
 13. The apparatus ofclaim 8 wherein the means for creating an access engine includes: meansfor instantiating the access engine when a new process begins.
 14. Theapparatus of claim 13 wherein the apparatus further comprises: means forquerying the access engine for supported navigation modes of thedocument object.
 15. A computer program product comprising a computerusable medium having computer usable program code for rendering documentobjects to individuals with vision impairment, the computer programproduct including: computer usable program code for creating an accessengine; computer usable program code for transmitting navigationcommands to the access engine during the navigation of a documentobject; computer usable program code for receiving information relatedto the document object from the access engine in response to thetransmitted navigation commands; and computer usable program code forrendering the received information.
 16. The computer program product ofclaim 15 further comprising: computer usable program code for queryingthe access engine for supported navigation actions of the documentobject.
 17. The computer program product of claim 15 wherein thecomputer usable program code for rendering the received informationincludes: computer usable program code for providing the receivedinformation audibly.
 18. The computer program product of claim 15wherein the computer usable program code for rendering the receivedinformation includes: computer usable program code for providing thereceived information in Braille.
 19. The computer program product ofclaim 15 wherein the computer usable program code for creating an accessengine includes: computer usable program code for instantiating theaccess engine in response to a predetermined event.
 20. The computerprogram product of claim 15 wherein the computer usable program code forcreating an access engine includes: computer usable program code forinstantiating the access engine when a new process begins.